package problems;

import java.math.BigInteger;

public class Euler056 extends AbstractEuler {

	@Override
	public Number calculate() {
		int maxDigitalSum = 1;
		for (int a = 2; a < 100; a++) {
			for (int b = 2; b < 100; b++) {
				BigInteger aPowB = BigInteger.valueOf(a).pow(b);
				int digitalSum = 0;
				for (String digit : aPowB.toString().split("")) {
					if (!"".equals(digit)) {
						digitalSum += Integer.valueOf(digit);
					}
				}
				if (digitalSum > maxDigitalSum) {
					maxDigitalSum = digitalSum;
				}
			}
		}
		return maxDigitalSum;
	}

	@Override
	protected Number getCorrectAnswer() {
		return 972;
	}

}
